//
// Created by Administrator on 2023/5/16.
// char 相关练习
/*
 * 常见ASCII码的大小规则：数字< 大写字母 < 小写字母。
1.数字比字母要小。如 “7”<“F”；
2.数字0比数字9要小，并按0到9顺序递增。如 “3”<“8” ；
3.字母A比字母Z要小，并按A到Z顺序递增。如“A”<“Z” ；
4.同个字母的大写字母比小写字母要小32。如“A”<“a” 。
几个常见字母的ASCII码大小： “A”为65；“a”为97；“0”为 48
 * */
//

#include <iostream>

using namespace std;

// 判断是大写还是小写
// 返回: 大写1,小写0,都不是-1
int isCapital(char a)
{
    if(a>='a' && a<='z')
    {
        return 0;
    }else if(a>='A' && a<='Z')
    {
        return 1;
    }
    return -1;
}

// 大写小写互转
char changeCaptial(char a)
{
    if(a>='a' && a<='z')
    {
        return a-32;
    }else if(a>='A' && a<='Z')
    {
        return a+32;
    }
    return a;
}

// 将ascii中的数字字符转成int
int charToInt(char a )
{
    return a-'0';
}
// 将int转成ASCII字符
char intToChar(int a )
{
    return a+48;
}

int main()
{
    char cha = 'a';
    int ina = 97, inb = 1;
    int inc = 2147483647; // 这是int的最大值
    printf("%d\n", cha);
    // char
    printf("%d\n", ++ina);
    // int溢出后会回到最小值
    printf("%d\n", ++inc);
    // 判断是大写还是小写
    char str[]="helloworld123";
    str[0]='H';
    printf("%s\n",str);
    printf("is capital: %d\n", isCapital('a'));
    // 大写小写互转
    printf("change capital: %c\n", changeCaptial('w'));
    // 将ascii中的数字字符转成int
    printf("ascii to int: %d\n", charToInt('2'));
    // 将int转成ASCII字符
    printf("int to ascii : %c\n", intToChar(2));
    return 0;
}